From a87818418051794363dcf25b3f815d3a685ed3c8 Mon Sep 17 00:00:00 2001 From: Robert Lipe Date: Wed, 31 Jul 2019 19:06:16 -0500 Subject: [PATCH] Fix Garmin debugging for "funny" characters. Isalnum() prints single byte characters that aren't ASCII, making funny business in iTerm. Yes, all those should be refactored into a single "print buffer". --- jeeps/gpsapp.cc | 4 ++++ jeeps/gpsread.cc | 2 +- jeeps/gpssend.cc | 2 +- jeeps/gpsusbcommon.cc | 6 ++++-- 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/jeeps/gpsapp.cc b/jeeps/gpsapp.cc index 9baebaddb..a31329361 100644 --- a/jeeps/gpsapp.cc +++ b/jeeps/gpsapp.cc @@ -30,6 +30,8 @@ #include #include +#include + /* * This violates the layering design, but is needed for device discovery. * See the use of gps_is_usb and GPS_Packet_Read_usb below. @@ -842,6 +844,8 @@ static void GPS_A001(GPS_PPacket& packet) gps_route_transfer, gps_rte_hdr_type, gps_rte_type); GPS_User("Track: Transfer %d Type %d\n", gps_trk_transfer, gps_trk_type); + QDateTime dt = QDateTime::fromMSecsSinceEpoch(gps_save_time * 1000); + GPS_User("GPS Time: %s\n", CSTR(dt.toString())); return; } diff --git a/jeeps/gpsread.cc b/jeeps/gpsread.cc index fe06f20a4..3f97922e5 100644 --- a/jeeps/gpsread.cc +++ b/jeeps/gpsread.cc @@ -150,7 +150,7 @@ int32 GPS_Serial_Packet_Read(gpsdevh* fd, GPS_PPacket* packet) GPS_Diag(" "); for (unsigned i = 0; i < packet->n; i++) { char c = (*packet).data[i]; - GPS_Diag("%c", isalnum(c) ? c : '.'); + GPS_Diag("%c", isascii(c) && isalnum(c) ? c : '.'); } GPS_Diag(" "); } diff --git a/jeeps/gpssend.cc b/jeeps/gpssend.cc index fc0a8c878..ba17f8acc 100644 --- a/jeeps/gpssend.cc +++ b/jeeps/gpssend.cc @@ -102,7 +102,7 @@ DiagS(void* buf, size_t sz) while (sz--) { unsigned char c = *cbuf++; - GPS_Diag("%c", isalnum(c) ? c : '.'); + GPS_Diag("%c", isascii(c) && isalnum(c) ? c : '.'); } } diff --git a/jeeps/gpsusbcommon.cc b/jeeps/gpsusbcommon.cc index 225f747d6..4d5163f46 100644 --- a/jeeps/gpsusbcommon.cc +++ b/jeeps/gpsusbcommon.cc @@ -118,7 +118,8 @@ top: GPS_Diag("[...]"); break; } - GPS_Diag("%c", isalnum(buf[i])? buf[i] : '.'); + int c = buf[i]; + GPS_Diag("%c", isascii(c) && isalnum(c) ? c : '.'); } m1 = Get_Pkt_Type(pkt_id, pkttype, &m2); @@ -169,7 +170,8 @@ gusb_cmd_send(const garmin_usb_packet* opkt, size_t sz) } for (i=0; i